ローコード IoT アプリケーションビルダーのSORACOM Fluxで簡単なIoTアプリを作ってみる

ローコード IoT アプリケーションビルダーのSORACOM Fluxで簡単なIoTアプリを作ってみる

ローコード IoT アプリケーションビルダーのSORACOM Fluxを試してみました。 初めてのローコードツールだったので、少し苦戦しました。
Clock Icon2024.08.29

はじめに

IoTデバイスと生成AIを組み合わせたアプリケーションを簡単に作成してみたいと思ったことはありますでしょうか。
今回は生成AIを活用したローコード IoT アプリケーションビルダーのSORACOM Fluxで簡単なアプリケーションを作成してみます。

前提

SORACOM Fluxの利用にはSORACOMのアカウントが必要です。
SORACOMのアカウントをお持ちでない場合は、こちらからアカウントを作成してください。

今回は以下の構成でアプリを実装してみます。

SORACOM_Flux_20

構築

Fluxアプリの作成

作成したアカウントでログインして、SORACOM ユーザーコンソールにアクセスします。
ダッシュボードからメニュー>SORACOM Flux>Flux アプリに遷移します。

SORACOM_Flux_01

続いて、+新しいFluxアプリを作成するを選択します。

SORACOM_Flux_02

任意のアプリ名を設定し、作成を選択します。
私の場合はSampleAppとしました。

SORACOM_Flux_03

チャネルの作成

+チャネルを作成するから実際にアプリケーションを構築していきます。

SORACOM_Flux_04

今回はSORACOMのデバイス/SIMはなしで構成するのでAPI/マニュアル実行のチャネルを作成します。
デバイスをお持ちの場合は、IoTデバイスのチャネルを使用して下さい。

SORACOM_Flux_05

名前はデフォルトのまま進みます。

SORACOM_Flux_06

チャネルが作成できたら、アクションを追加します。

SORACOM_Flux_07

イベントメッセージを生成AIに送信したいので、+アクションを追加>AIを選択します。

SORACOM_Flux_08

CONFIG内のAIモデル・プロンプトを設定しAIからの返答をJSON形式にするのチェックを外しておきます。

SORACOM_Flux_09

アクションのアウトプットを別のチャネルに送信するを有効にし、メール通知できるように設定します。
チャネル名はデフォルトのままとし、作成を選択します。

SORACOM_Flux_10

作成したOutputチャネルに、Email通知のアクションを追加します。

SORACOM_Flux_12
SORACOM_Flux_13

CONFIG内のTO件名本文を設定します。

SORACOM_Flux_14

テストの実行

コンソールからのテスト実行

SORACOM FluxではFluxStudio内からテストの実行が可能です。
試しにAPI Channelからテストに遷移し、Body入力後に実行を選択します。

SORACOM_Flux_15

実行後に実行履歴で後続のイベントが全てCOMPLETEDとなれば成功です。
しばらくするとメールが届くはずです。

SORACOM_Flux_16

ローカルPCからAPI実行

続いて、ローカルPCからAPIを叩いてみます。
API実行にはAPI キーと API トークンを発行が必要になります。
https://users.soracom.io/ja-jp/tools/api/key-and-token/

ドキュメントに従って、API キーと API トークンを発行します。
ログインしているユーザーによってコマンドが異なるので、適宜実行して下さい。

SAM ユーザーの場合

  • 認証キー ID、および認証キーシークレットを使用して認証する
$ curl -X POST https://api.soracom.io/v1/auth \
-H "Content-Type: application/json" \
-d '{
  "authKeyId": "keyId-xxxxxxx",
  "authKey": "secret-xxxxxxx"
}'

# Response:
# 200 OK
#
# {
#   "apiKey": "API キー",
#   "operatorId": "オペレーター ID",
#   "userName": "SAM ユーザー名",
#   "token": "API トークン"
# }
  • オペレーター ID、SAM ユーザー名、およびコンソールログインパスワードを使用して認証する
$ curl -X POST https://api.soracom.io/v1/auth \
-H "Content-Type: application/json" \
-d '{
  "operatorId": "オペレーター ID",
  "userName": "SAM ユーザー名",
  "password": "コンソールログインパスワード"
}'

# Response:
# 200 OK
#
# {
#   "apiKey": "API キー",
#   "operatorId": "オペレーター ID",
#   "userName": "SAM ユーザー名",
#   "token": "API トークン"
# }

ルートユーザーの場合

  • メールアドレス、およびパスワードを使用して認証する
$ curl -X POST https://api.soracom.io/v1/auth \
-H "Content-Type: application/json" \
-d '{
  "email": "email@example.com",
  "password": "superStrongPassw0rd"
}'

# Response:
# 200 OK
#
# {
#   "apiKey": "API キー",
#   "operatorId": "オペレーター ID",
#   "token": "API トークン"
# }

取得したAPIキーとAPIトークンを使用して環境変数に設定します。

X_SORACOM_API_KEY= <取得したAPI キー>
X_SORACOM_TOKEN= <取得したAPI トークン>

変数の設定が終わったら、ローカルPCもしくはIoTデバイスから以下のコマンドを実行してAPIを実行します。

$ curl -X POST "https://api.soracom.io/v1/flux/apps/{app_id}/channels/{channel_id}/messages" \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '{"temperature": 25}'

POST https://api.soracom.io/v1/flux/apps/{app_id}/channels/{channel_id}/messages
・ ドメイン: https://api.soracom.io は 日本カバレッジに対する ドメインです。グローバルカバレッジの Flux アプリにリクエストを送信する場合は、https://g.api.soracom.io です。詳しくは、SORACOM API 利用ガイド を参照してください。
・ app_id: Flux アプリの ID。(*1)
・ channel_id: チャネルの ID。(*1)
(*1) API エンドポイント (ドメイン、app_id、channel_id を含めた URL) は、チャネルの詳細画面の [イベントソース] タブで確認できます。

https://users.soracom.io/ja-jp/docs/flux/event-source-api/#チャネルにデータを送信する

以下はイベントソースタブの実際の画像です。

SORACOM_Flux_17

API実行後にFlux Studioの実行履歴を確認し、イベントが全てCOMPLETEDとなれば成功です。
メールが受信できていれば、構築完了です。

SORACOM_Flux_18

おまけ

ユーザーコンソールからSORACOM Support Botを使うことで、SORACOM Fluxの開発を円滑に行うことができます。
以下の画像ではSORACOM Fluxについて聞いています。
困った際にはぜひ使用してみて下さい。

SORACOM_Flux_19

まとめ

今回はローコード IoT アプリケーションビルダーのSORACOM Fluxで簡単なアプリケーションを作成してみました。
無料プランが提供されているので、IoT × 生成AIを試してみるのにお手軽です。
ただ、使用できるクレジットも決まっているため、使用するAIモデルは慎重に選択する必要があります。

本ブログがどなたかのお役に立てれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.